/*
 * @Description: 可视化分析类型声明
 * @Author: chenju
 * @Date: 2022-07-21 19:04:16
 * @LastEditors: chenju
 * @LastEditTime: 2023-01-19 10:51:36
 */
// 按组织分布 返回参数
export interface GetOrgListResult {
  // 组织编号
  organizationCode: string;
  // 组织名称
  organizationName: string;
  // 组织总排放量
  totalEmission: string;
  taskNo: string;
}

// 按组织分布-单个组织排放详情 请求参数
export interface GetHierarchyListParams {
  // 子组织编号
  organizationCode?: string;
  // 子任务编号
  taskNo?: string;
}

// 按组织分布-单个组织排放详情 返回参数
export interface GetHierarchyListResult {
  // 排放范围
  emissionScope: string;
  // 排放类别
  emissionCategory: string;
  // 温室气体源类型
  ghgSourceName: string;
  // 排放源
  sourceName: string;
  // 填充物
  factorName: string;
  // 活动数据
  activeData: string;
  // 活动数据单位
  activeDataUnit: string;
  // 总排放量
  totalEmission: string;
  // 排放占比
  proportion: string;
}

// 按组织分布-饼图-导出excel 请求参数
export interface OrgExportParams {
  // 主任务编号
  taskNo: string;
  // 排除的子组织编号，多个以英文逗号分隔
  exclusiveOrgCodes: string;
}

// 按组织分布-单个组织排放详情-导出excel 请求参数
export interface OrgDetailExportParams {
  // 子任务编号
  taskNo: string;
  // 子任务组织编号
  organizationCode: string;
}

// 按范围分布 返回参数
export interface GetScopeListResult {
  // 全价值链总排放
  totalEmissions: number;
  // 运营层面碳排放
  operationEmissions: number;
  // 排放范围分类
  scopeList: ScopeListItem[];
  // 排放类别分类
  categoryList: CategoryListItem[];
  // 温室气体源类型
  sourceList: SourceListItem[];
}

// 排放范围分类item
export interface ScopeListItem {
  // 排放范围
  emissionScope: string;
  // 排放总量
  totalEmission: number;
}

// 排放类别分类item
export interface CategoryListItem {
  // 排放类别
  emissionCategory: string;
  // 排放总量
  totalEmission: number;
}

// 温室气体源类型item
export interface SourceListItem {
  // 排放范围
  emissionScope: string;
  // 排放范围内气体源分布
  scopeSourceList: {
    // 温室气体源类型（中文）
    ghgSourceName: string;
    // 排放总量
    totalEmission: number;
  }[];
}

// 按范围分布-按范围导出excel 请求参数
export interface ScopeScopeExportParams {
  // 主任务编号
  taskNo: string;
  // 排除的排放范围，多个以英文逗号分隔
  exclusiveScopes: string;
}

// 按范围分布-按排放类别导出excel 请求参数
export interface ScopeClassExportParams {
  // 主任务编号
  taskNo: string;
  // 排放类别，多个以英文逗号分隔
  exclusiveCategories: string;
}

// 按范围分布-导出温室气体类型分布excel 请求参数
export interface ScopeSourceExportParams {
  // 主任务编号
  taskNo: string;
  // 排放范围
  emissionScope: string;
}

// 按时间分布 请求参数
export interface GetPeriodListParams {
  // 组织编号
  organizationCode: string;
  // 盘查周期类型：YEAR-年度，MONTH-月度
  periodType: string;
}

// 按时间分布 响应参数
export interface GetPeriodListResult {
  // 盘查周期
  inventoryYear: string;
  // 排放总量
  totalEmission: string;
  // 范围一排放
  scopeOneEmission: string;
  // 范围二排放
  scopeTwoEmission: string;
  // 范围三排放
  scopeThreeEmission: string;
  // 产量
  production: string;
}

// 按时间分布-月度碳排放趋势 请求参数
export interface GetMonthPeriodListParams {
  // 组织编号
  organizationCode: string;
  // 排放数据类型：TOTAL - 排放总量；INTENSITY - 排放强度
  emissionType: string;
}

// 按时间分布-月度碳排放趋势 响应参数
export interface GetMonthPeriodListResult {
  // 月份
  month: string;
  // 本年度排放数据
  currentEmission: string;
  // 上一年度排放数据
  lastEmission: string;
}

// 按按时间分布-导出碳排放数据对比 请求参数
export interface PeriodExportParams {
  // 组织编号
  organizationCode: string;
  // 盘查周期类型：YEAR-年度，MONTH-月度
  periodType: string;
  // 排除的排放范围，多个以英文逗号分隔
  exclusiveScopes: string;
  // 排除排放强度：true-排除；false-不排除
  exclusiveIntensity: boolean;
}

// 按时间分布-月度碳排放趋势-导出排放强度excel 请求参数
export interface PeriodIntensityExportParams {
  // 组织编号
  organizationCode: string;
  // 排放数据类型：TOTAL - 排放总量；INTENSITY - 排放强度
  emissionType: string;
  // 排除年份：CURRENT-当年；LAST-去年
  exclusiveYear: string;
}

// 盘查-图形化趋势-近12月碳排放及强度趋势分析 - 请求参数 - 王佩宇
export interface queryAnalysisParams {
  // 组织编号
  orgCode: string;
  // 盘查年份
  inventoryYear?: string;
  // 核算标准
  standard: string;
}
// 盘查-图形化趋势-按年碳排放及强度趋势分析 - 请求参数 - 王佩宇
export interface queryAnalysisYearParams {
  // 组织编号
  orgCode: string;
  // 核算标准
  standard: string;
}

// 盘查-图形化趋势-碳排放及强度趋势分析(月/年) - 相应参数 - 王佩宇
export interface queryAnalysisRes {
  // 年份 集合
  data: string[];
  // 排放强度 集合
  emissionStrength: (string | number)[];
  // 总碳排放量 集合
  totalEmission: (string | number)[];
  // 累计排放强度 集合
  accumulateEmission: (string | number)[];
  // 开始年
  startYear?: string;
  // 结束年
  endYear?: string;
}
// 盘查-碳排放分布分析-饼图/柱图 - 请求参数 - 王佩宇
export interface queryOrgAnalysisParams {
  // 机构编码
  orgCode: string;
  // 盘查年份
  inventoryYear?: string;
  // 月份筛选条件
  dataPeriod: string;
  // 核算标准
  standard: string;
}
// 盘查-碳排放分布分析-饼图 - 相应参数 - 王佩宇
export interface queryOrgAnalysisPieRes {
  // 机构名称
  name: string;
  // 组织编码
  organizationCode: string;
  // 饼图百分比
  totalEmissionRate: string;
  // 饼图实际值
  value: string | number;
}
// 盘查-碳排放分布分析-堆叠柱图 - 相应参数 - 王佩宇
export interface queryOrgAnalysisBarRes {
  // x轴机构组织名称
  organizationName: string[];
  orgGhgSourceStaticList: orgGhgSourceStatic[];
}
// 盘查-碳排放分布分析-桑基图 - 相应参数 - 王佩宇
export interface queryOrgAnalysisSankeyRes {
  nodes: { name: string; itemStyle?: { color: string } }[]; // 节点名称数组
  links: {
    source: string; // 来源
    target: string; // 目标
    value: string; // 实际值
  }[]; // 数据流向
  topScope: string; // 排放范围
  topSourceName: string; // 排放源
  topMaterialName: string; // 排放类型
}
interface orgGhgSourceStatic {
  name: string; // 标签名称
  data: string[];
  itemList: {
    organizationName: string;
    totalEmission: string;
    totalEmissionRate: string;
  }[];
}
// 盘查-图形趋势分析-标头-相应参数
export interface analysisTopType {
  firstTrendStatistics: firstTrendStatisticsType | null;
  orgCount: string; // 机构总数
  orgEmissionCount: string; // 已完成盘查机构数
}
export interface firstTrendStatisticsType {
  totalEmission: string; // 碳排放总量
  totalEmissionRate: string; // 碳排放总量比
  totalEmissionRateType: string; // 碳排放总量浮度(STRAIGHT 上浮 BURDEN 下浮 EQUATION 打平)
  emissionStrength: string; // 碳排放强度
  emissionStrengthRate: string; // 碳排放强度比
  emissionStrengthRateType: string; // 碳排放强度浮度(STRAIGHT 上浮 BURDEN 下浮 EQUATION 打平)
}

/**
 * 碳排放量按排放源分布分析
 */
export interface OrgGhgSourceStaticListItem {
  name: string;
  data: string[];
  itemList: {
    organizationName: string;
    totalEmission: string;
    totalEmissionRate: string;
  }[];
}
